package com.wei.czz.framework.common.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wei.czz.framework.common.entity.MultiDictEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2023-12-26 11:50:17
 * className: MultiDictDao
 * version: 1.0
 * description:
 */
public interface MultiDictDao extends BaseMapper<MultiDictEntity> {

    /**
     * 查询级联字典最大排序等级
     * @param parentId     父级主键
     * @param type         类型
     * @param deleteStatus 删除状态
     * @return 最大排序等级
     */
    Integer selectMaxSort(@Param("parentId") Long parentId, @Param("type") Integer type,
                          @Param("deleteStatus") Integer deleteStatus);

    /**
     * 查询子、子孙级联字典
     * @param parentPath   父级路径
     * @param deleteStatus 删除状态
     * @return 级联字典列表
     */
    List<MultiDictEntity> selectChildren(@Param("parentPath") String parentPath,
                                         @Param("deleteStatus") Integer deleteStatus);

    /**
     * 查询直接子级联字典
     * @param type         字典类型
     * @param valueList    字典值列表
     * @param status       状态
     * @param deleteStatus 删除状态
     * @return 级联字典对象列表
     */
    List<MultiDictEntity> selectDirectChildren(@Param("type") Integer type, @Param("valueList") List<String> valueList,
                                               @Param("status") Integer status,
                                               @Param("deleteStatus") Integer deleteStatus);
}
